import { ElMessage } from 'element-plus'
import { Router } from 'vue-router'
import store from '@/store'

export default function setupGlobalRouter(router: Router) {
  // 全局前置守卫
  router.beforeEach(async (to, from, next) => {
    // 检查登录状态
    await store.dispatch('checkLogin')
    
    // 检查路由是否需要认证
    if (to.meta.requiresAuth !== false) {
      // 未登录且不是前往登录页
      if (!store.getters.isAuthenticated && to.path !== '/login') {
        ElMessage.warning('请先登录')
        return next({
          path: '/login',
          query: { redirect: to.fullPath }
        })
      }
      
      // 已登录但尝试访问登录页
      if (store.getters.isAuthenticated && to.path === '/login') {
        return next(from.path || '/')
      }
    }
    
    next()
  })

  // 全局后置守卫
  router.afterEach((to) => {
    // 设置页面标题
    if (to.meta.title) {
      document.title = `${to.meta.title} | 系统名称`
    }
  })
}